Field of the Invention
Embodiments of the present invention generally relate to mode adaptive intra prediction smoothing in video coding.
Description of the Related Art
Video compression, i.e., video coding, is an essential enabler for digital video products as it enables the storage and transmission of digital video. In general, video compression techniques apply prediction, transformation, quantization, and entropy coding to sequential blocks of pixels in a video sequence to compress, i.e., encode, the video sequence. Video decompression techniques generally perform the inverse of these operations in reverse order to decompress, i.e., decode, a compressed video sequence.
Intra prediction may be carried out by angular prediction from pixels in neighboring blocks. For example, angular intra prediction is proposed in the High Efficiency Video Coding (HEVC) standard currently under development by a Joint Collaborative Team on Video Coding (JCT-VC) established by the ISO/IEC Moving Picture Experts Group (MPEG) and ITU-T Video Coding Experts Group (VCEG). In general, in angular intra prediction, two arrays of reference samples are used are used for angular intra prediction: a reference array corresponding to a row of samples neighboring the block of pixels to be predicted at the top, and a reference array corresponding to a column of samples neighboring the block to the left. Given a dominant prediction direction (horizontal or vertical), one of the reference arrays is defined to be the “main” array and the other array the “side” array.
The reference pixel value is determined by drawing a straight line of the prediction angle from a pixel to the reference array. To calculate the prediction pixel value at a fractional pel location in a reference array, bilinear interpolation is used. FIG. 1 shows an example of determining a reference pixel value for a pixel being predicted using angular intra prediction. In this example, θ is the prediction angle, i.e., the angle of the intra prediction mode. The predicted pixel value for pixel A is calculated by drawing a straight line of the angle θ from A toward the main reference (or side reference). The predicted value of A is the interpolated value at the intercept of the line and the main (or side) reference, i.e., the predicted value is interpolated from the values of R and S.
There are several different techniques for performing angular intra prediction given the two reference arrays. Some example techniques are described in the following documents: “Test Model under Consideration”, JCTVC-B205, Jul. 21-28, 2010; F. Bossen, et al, “Simplified Angular Intra Prediction”, JCTVC-B093, Jul. 21-28, 2010; M. Budagavi, “Angular Intra-Prediction and ADI Simplification”, JCTVC-B118, Jul. 21-28, 2010; and M. Budagavi, “TE5: TI Evaluation of Unified Intra Prediction Simplifications”, JCTVC-C061, Oct. 7-15, 2010. Other examples may be found in other JCTVC documents. Improved prediction may be obtained in some cases if the values of the reference pixels are smoothed, i.e., filtered.